## 遍历文件夹中的所有标签文件，并在其中对指定的标签进行替换
import os
import xml.etree.ElementTree as ET

# 定义标签替换的映射关系
replacement_dict = {
    'dock1': 'dock',
    'boat1': 'USV',
    'boat': 'USV'
}

def modify_label(file_path):
    # 解析 XML 文件
    tree = ET.parse(file_path)
    root = tree.getroot()

    # 遍历所有的 <name> 标签，并进行替换
    for obj in root.iter('object'):
        name_tag = obj.find('name')
        if name_tag is not None:
            original_name = name_tag.text
            if original_name in replacement_dict:
                name_tag.text = replacement_dict[original_name]

    # 将修改后的 XML 内容保存回文件
    tree.write(file_path)

def modify_labels_in_folder(folder_path):
    # 遍历文件夹中的所有 XML 文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.xml'):
            file_path = os.path.join(folder_path, filename)
            modify_label(file_path)
            print(f"Modified: {filename}")

# 设置标签文件夹路径
folder_path = '/home/shuai/Downloads/total_202411272006/select_image/paper_image_label/annotations'  # 替换为你实际的标签文件夹路径

# 执行修改操作
modify_labels_in_folder(folder_path)
